import axios from 'axios'

// 创建axios实例
const service = axios.create({
  baseURL: '/api',
  timeout: 20000, // 增加超时时间
  headers: {
    'Content-Type': 'application/json'
  }
})

// 请求拦截器
service.interceptors.request.use(
  config => {
    console.log('请求配置:', {
      url: config.url,
      method: config.method,
      params: config.params,
      data: config.data
    })
    // 可以在这里添加token等认证信息
    // const token = localStorage.getItem('token')
    // if (token) {
    //   config.headers['Authorization'] = `Bearer ${token}`
    // }
    return config
  },
  error => {
    console.error('请求错误:', error.message || error)
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
    console.log('响应状态:', response.status)
    console.log('响应头:', response.headers)
    console.log('响应数据:', response.data)
    // 直接返回响应对象，让调用方可以访问完整的响应信息
    return response
  },
  error => {
    console.error('响应错误:', {
      message: error.message,
      status: error.response?.status,
      statusText: error.response?.statusText,
      data: error.response?.data,
      url: error.config?.url,
      headers: error.response?.headers
    })
    return Promise.reject(error)
  }
)

// 部门管理相关API
export const deptApi = {
  // 获取部门列表 - 与后端接口匹配
  getDeptList: (params) => service.get('/depts', { params }),
  
  // 添加部门
  addDept: (data) => service.post('/depts', data),
  
  // 修改部门
  updateDept: (data) => service.put('/depts', data),
  
  // 删除部门
  deleteDept: (id) => service.delete(`/depts/${id}`),
  
  // 获取部门详情
  getDeptDetail: (id) => service.get(`/depts/${id}`),
  
  // 获取所有部门列表
  getAllDepts: () => service.get('/depts/list')
}

export default service